import { get } from '@common/ajax';
import logger from '@common/logger';
let times = 3;
const wx = window.wx;

// 微信页面权限验证配置，参数为需要使用的JS接口列表
export const wxConfig = (configData, list, callback) => {
    logger.warn('配置的参数为：', configData);
    logger.warn('配置的接口列表为：', list);
    wx.config({
        debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
        appId: configData.app_id, // 必填，公众号的唯一标识
        timestamp: configData.timestamp, // 必填，生成签名的时间戳
        nonceStr: configData.noncestr, // 必填，生成签名的随机串
        signature: configData.sign, // 必填，签名
        jsApiList: list, // 必填，需要使用的JS接口列表
    });
    wx.ready(function () {
        callback && callback();
    });
    wx.error(function () {
        // 失败，重新尝试注册
        if (times > 0) {
            wxConfig(configData, list);
            times--;
        }
    });
};

const checkApi = (list, callback) => {
    wx.checkJsApi({
        jsApiList: list, // 需要检测的JS接口列表，所有JS接口列表见附录2,
        success: function(res) {
            callback && callback(res);
        }
    });
};

// 注册页面分享内容
export const setWxShareLink = ({ title, desc, imgUrl, link }, callback) => {
    wx.updateAppMessageShareData({
        title, // 分享标题
        desc, // 分享描述
        link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
        imgUrl, // 分享图标
        success: function () {
            // 设置成功
            callback && callback();
            logger.info('微信分享设置成功--updateAppMessageShareData');
        }
    });
    wx.updateTimelineShareData({
        title, // 分享标题
        link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
        imgUrl, // 分享图标
        success: function () {
            // 设置成功
            callback && callback();
            logger.info('微信分享设置成功--updateTimelineShareData');
        }
    });
};

// 隐藏操作按钮
export const hideWxMenuItems = (list) => {
    wx.hideMenuItems({
        menuList: list // 要隐藏的菜单项，只能隐藏“传播类”和“保护类”按钮，所有menu项见附录3
    });
};

// 禁用所有传播类菜单
export const hideWxShareMenu = () => {
    wx.hideMenuItems({
        menuList: [
            'menuItem:share:appMessage',
            'menuItem:share:timeline',
            'menuItem:share:qq',
            'menuItem:share:weiboApp',
            'menuItem:share:facebook',
            'menuItem:favorite',
            'menuItem:share:QZone',
        ],
    });
};

export const closeWxWindow = () => {
    wx.closeWindow();
};
